# Асинхронное программирование
## [Асинхронное программирование в Node.js и JavaScript](https://youtu.be/hY6Z6qNYzmc)
- [5:45 Callbacks](https://youtu.be/hY6Z6qNYzmc?t=345)
- [            10:00 Async.js or analogues](https://youtu.be/hY6Z6qNYzmc?t=600)
- [            15:47 Events](https://youtu.be/hY6Z6qNYzmc?t=947)
- [            18:00 Promise](https://youtu.be/hY6Z6qNYzmc?t=1080)
- [            25:20 async/await](https://youtu.be/hY6Z6qNYzmc?t=1520)
- [            27:10 Functor + Chaining + composition](https://youtu.be/hY6Z6qNYzmc?t=1630)
- [            30:49 Problems of callback, async.js, Proimise, async/await](https://youtu.be/hY6Z6qNYzmc?t=1849)
- [            34:00 Add timeout to any function](https://youtu.be/hY6Z6qNYzmc?t=2040)
- [            36:55 Make function cancelable](https://youtu.be/hY6Z6qNYzmc?t=2215)
- [            37:59 More wrappers](https://youtu.be/hY6Z6qNYzmc?t=2279)
- [            39:22 Promisify and Callbackify](https://youtu.be/hY6Z6qNYzmc?t=2362)
- [            48:47 Sync function to async](https://youtu.be/hY6Z6qNYzmc?t=2927)
- [            41:43 Sync function to Promise](https://youtu.be/hY6Z6qNYzmc?t=2503)
- [            43:17 Convertors](https://youtu.be/hY6Z6qNYzmc?t=2597)
- [            43:31 Metasync](https://youtu.be/hY6Z6qNYzmc?t=2611)
- [            45:26 Function composition](https://youtu.be/hY6Z6qNYzmc?t=2726)
- [            47:09 Adynchronous function composition](https://youtu.be/hY6Z6qNYzmc?t=2829)
- [            47:58 Flow communication like in electronics](https://youtu.be/hY6Z6qNYzmc?t=2878)
- [            50:06 Collectors](https://youtu.be/hY6Z6qNYzmc?t=3006)
- [            59:17 Queue](https://youtu.be/hY6Z6qNYzmc?t=3557)
## [Таймеры, таймауты, EventEmitter в JavaScript и Node.js](https://youtu.be/LK2jveAnRNg)
- [0:30 callback sync/async](https://youtu.be/LK2jveAnRNg?t=30)
- [            1:35 временная задержка sleep.js](https://youtu.be/LK2jveAnRNg?t=95)
- [            5:35 await-sleep.js](https://youtu.be/LK2jveAnRNg?t=335)
- [            8:40 sleep-then.js](https://youtu.be/LK2jveAnRNg?t=520)
- [            9:30 order.js](https://youtu.be/LK2jveAnRNg?t=570)
- [            18:38 precision.js](https://youtu.be/LK2jveAnRNg?t=1118)
- [            22:13 blocking.js](https://youtu.be/LK2jveAnRNg?t=1333)
- [            22:50 timers.js](https://youtu.be/LK2jveAnRNg?t=1370)
- [            29:35 ref-unref.js](https://youtu.be/LK2jveAnRNg?t=1775)
- [            32:05 enroll.js](https://youtu.be/LK2jveAnRNg?t=1925)
- [            34:57 eventloop.txt](https://youtu.be/LK2jveAnRNg?t=2097)
- [            37:37 eventEmitter](https://youtu.be/LK2jveAnRNg?t=2257)
- [            44:32 simple.js](https://youtu.be/LK2jveAnRNg?t=2672)
- [            47:48 usage.js](https://youtu.be/LK2jveAnRNg?t=2868)
- [            48:30 enhanced.js](https://youtu.be/LK2jveAnRNg?t=2910)
- [            50:18 star-fix.js](https://youtu.be/LK2jveAnRNg?t=3018)
- [            51:10 usage.js](https://youtu.be/LK2jveAnRNg?t=3070)
- [            53:15 closure.js](https://youtu.be/LK2jveAnRNg?t=3195)
- [            54:50 fp.js](https://youtu.be/LK2jveAnRNg?t=3290)
- [            57:10 methods.js](https://youtu.be/LK2jveAnRNg?t=3430)
- [            1:06:35 min.js](https://youtu.be/LK2jveAnRNg?t=3995)
- [            1:12:31 prod.js](https://youtu.be/LK2jveAnRNg?t=4351)
## [Асинхронное программирование на callback`ах в JavaScript](https://youtu.be/z8Hg6zgi3yQ)
- [1:20 пример callback функции](https://youtu.be/z8Hg6zgi3yQ?t=80)
- [            2:40 пример последовательного исполнения callback функций](https://youtu.be/z8Hg6zgi3yQ?t=160)
- [            5:52 пример параллельного исполнения async функций c использованием wrapAsync](https://youtu.be/z8Hg6zgi3yQ?t=352)
- [            15:18 пример последовательного исполнения async функций c использованием wrapAsync](https://youtu.be/z8Hg6zgi3yQ?t=918)
- [            19:05 chain исполнение async функций](https://youtu.be/z8Hg6zgi3yQ?t=1145)
- [            41:16 где можно встретить асинхронные функции](https://youtu.be/z8Hg6zgi3yQ?t=2476)
## [Неблокирующее асинхронное итерирование в JavaScript](https://youtu.be/wYA2cIRYLoA)
- [1:02 блокирующее итерирование по массиву](https://youtu.be/wYA2cIRYLoA?t=62)
- [            3:24 блокирующее итерирование с помощью for await](https://youtu.be/wYA2cIRYLoA?t=204)
- [            4:47 неблокирующее итерирование с помощью setTimeout](https://youtu.be/wYA2cIRYLoA?t=287)
- [            6:45 неблокирующее итерирование с помощью for await](https://youtu.be/wYA2cIRYLoA?t=405)
- [            8:20 неблокирующее итерирование без задержки](https://youtu.be/wYA2cIRYLoA?t=500)
- [            13:00 неблокирующее итерирование без задержки с помощью for await](https://youtu.be/wYA2cIRYLoA?t=780)
- [            19:30 использование асинхронного итерирования для обычных массивов](https://youtu.be/wYA2cIRYLoA?t=1170)
## [Асинхронность с библиотекой async.js](https://youtu.be/XQ94wQc-erU)
- [](https://youtu.be/XQ94wQc-erU?t=0)
## [Асинхронность на промисах, Promise, all, then, catch, race](https://youtu.be/RMl4r6s1Y8M)
- [](https://youtu.be/RMl4r6s1Y8M?t=0)
## [Асинхронные функции, async/await, thenable, обработка ошибок](https://youtu.be/Jdf_tZuJbHI)
- [](https://youtu.be/Jdf_tZuJbHI?t=0)
## [Асинхронные адаптеры: promisify, callbackify, asyncify...](https://youtu.be/76k6_YkYRmU)
- [](https://youtu.be/76k6_YkYRmU?t=0)
## [Асинхронные коллекторы данных](https://youtu.be/tgodt1JL6II)
- [](https://youtu.be/tgodt1JL6II?t=0)
## [Необработанные ошибки в промисах на Node.js](https://youtu.be/1Ml5NE2fsZ8)
- [](https://youtu.be/1Ml5NE2fsZ8?t=0)
## [Проблема асинхронного стектрейса в JavaScript и Node.js](https://youtu.be/pfiHTx3j87Y)
- [](https://youtu.be/pfiHTx3j87Y?t=0)
## [Генераторы и асинхронные генераторы в JavaScript](https://youtu.be/kvNm9D32s8s)
- [00:00 Способы объявления генераторов  ](https://youtu.be/kvNm9D32s8s?t=0)
- [            10:41 Пример генератора с yield  ](https://youtu.be/kvNm9D32s8s?t=641)
- [            15:54 Пример генератора с yield и return  ](https://youtu.be/kvNm9D32s8s?t=954)
- [            18:47 Получение значений из генератора циклом for...of ](https://youtu.be/kvNm9D32s8s?t=1127)
- [            21:04 Получение значений из генератора spead - оператором ](https://youtu.be/kvNm9D32s8s?t=1264)
- [            21:50 Метод next  ](https://youtu.be/kvNm9D32s8s?t=1310)
- [            23:30 Пример генератора с yield *  возвращающего итерируемые объекты ](https://youtu.be/kvNm9D32s8s?t=1410)
- [            25:05 Пример генератора с yield *  возвращающего другие генераторы ](https://youtu.be/kvNm9D32s8s?t=1505)
- [            26:18 Метод return  ](https://youtu.be/kvNm9D32s8s?t=1578)
- [            28:11 Метод throw](https://youtu.be/kvNm9D32s8s?t=1691)
- [            29:05 Обобщение](https://youtu.be/kvNm9D32s8s?t=1745)
## [Итераторы и асинхронные итераторы в JavaScript](https://youtu.be/rBGFlWpVpGs)
- [](https://youtu.be/rBGFlWpVpGs?t=0)
## [Отмена асинхронных операций, cancellable callback and Promise в JavaScript](https://youtu.be/T8fXlnqI4Ws)
- [](https://youtu.be/T8fXlnqI4Ws?t=0)
## [Асинхронная композиция функций на JavaScript](https://youtu.be/3ZCrMlMpOrM)
- [](https://youtu.be/3ZCrMlMpOrM?t=0)
## [Thenable и легковесный await в JavaScript](https://youtu.be/DXp__1VNIvI)
- [](https://youtu.be/DXp__1VNIvI?t=0)
## [Конкурентная асинхронная очередь на JavaScript](https://youtu.be/Lg46AH8wFvg)
- [](https://youtu.be/Lg46AH8wFvg?t=0)
## [Паттерн Revealing Constructor - открытый конструктор](https://youtu.be/leR5sXRkuJI)
- [](https://youtu.be/leR5sXRkuJI?t=0)
## [Future: Асинхронность на фьючерах без состояния](https://youtu.be/22ONv3AGXdk)
- [](https://youtu.be/22ONv3AGXdk?t=0)
## [Deferred: Асинхронность на диферах с состоянием](https://youtu.be/a2fVA1o-ovM)
- [](https://youtu.be/a2fVA1o-ovM?t=0)
## [Модель акторов для параллельных вычислений](https://youtu.be/xp5MVKEqxY4)
- [](https://youtu.be/xp5MVKEqxY4?t=0)
## [Паттерн Наблюдатель (Observer + Observable)](https://youtu.be/_bFXuLcXoXg)
- [](https://youtu.be/_bFXuLcXoXg?t=0)
## [Асинхронность на RxJS и потоки событий](https://youtu.be/0kcpMAl-wfE)
- [](https://youtu.be/0kcpMAl-wfE?t=0)
## [Асинхронный пул для worker thread pool в Node.js](https://youtu.be/Jj5KZRq4wYI)
- [](https://youtu.be/Jj5KZRq4wYI?t=0)
